package avicit.bdp.dms.tdm.dto;

import avicit.platform6.commons.utils.StringUtils;
import avicit.platform6.core.annotation.log.FieldRemark;
import avicit.platform6.core.annotation.log.Id;
import avicit.platform6.core.annotation.log.LogField;
import avicit.platform6.core.annotation.log.PojoRemark;
import avicit.platform6.core.domain.BeanDTO;
import avicit.platform6.core.properties.PlatformConstant;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.data.annotation.Transient;

import javax.persistence.Column;

@ApiModel(value = "AssetCatalogAuthSettingDTO", description = "数据目录审核人设置")
@PojoRemark(
    table = "bdp_asset_catalog_auth_setting",
    object = "AssetCatalogAuthSettingDTO",
    name = "数据目录审核人设置")
public class AssetCatalogAuthSettingDTO extends BeanDTO {

  private static final long serialVersionUID = 1L;

  /** 主键ID;主键ID */
  @Id
  @LogField
  @ApiModelProperty(value = "主键ID;主键ID", name = "id")
  @FieldRemark(column = "ID", field = "id", name = "主键ID;主键ID")
  @javax.persistence.Id
  @Column(name = "id")
  private String id;

  /** 操作类型 */
  @ApiModelProperty(value = "操作类型", name = "examineType")
  @FieldRemark(column = "EXAMINE_TYPE", field = "examineType", name = "操作类型")
  private String examineType;

  /** 审核人 */
  @ApiModelProperty(value = "审核人;审核人", name = "checker")
  @FieldRemark(column = "CHECKER", field = "checker", name = "审核人;审核人")
  private String checker;

  /** 共享发布审核人 */
  @Transient private String shareReleaseAuditor;

  @Transient private String shareReleaseAuditorName;

  /** 需求发布审核人 */
  @Transient private String demandReleaseAuditor;

  @Transient private String demandReleaseAuditorName;

  /** 需求响应操作人 */
  @Transient private String demandResponseOperator;

  @Transient private String demandResponseOperatorName;

  /***
   * 需求响应审核人
   */
  @Transient private String demandResponseAuditor;

  @Transient private String demandResponseAuditorName;

  /** 访问申请审核人 */
  @Transient private String accessApplyAuditor;

  @Transient private String accessApplyAuditorName;

  /** 订阅申请审核人 */
  @Transient private String subscribeApplyAuditor;

  @Transient private String subscribeApplyAuditorName;

  /** 描述;描述 */
  @ApiModelProperty(value = "描述;描述", name = "remark")
  @FieldRemark(column = "REMARK", field = "remark", name = "描述;描述")
  private String remark;

  /** 数据权属;数据权属 通用代码（本人、本部门、本单位），全局唯一，必填 */
  @ApiModelProperty(value = "数据权属;数据权属   通用代码（本人、本部门、本单位），全局唯一，必填", name = "dataPerm")
  @FieldRemark(
      column = "DATA_PERM",
      field = "dataPerm",
      name = "数据权属;数据权属   通用代码（本人、本部门、本单位），全局唯一，必填")
  private String dataPerm;

  /** 数据来源;数据来源 */
  @ApiModelProperty(value = "数据来源;数据来源", name = "dataOrigin")
  @FieldRemark(column = "DATA_ORIGIN", field = "dataOrigin", name = "数据来源;数据来源")
  private String dataOrigin;

  /** 扩展属性;扩展属性，多个扩展属性用,隔开拼接存储 */
  @ApiModelProperty(value = "扩展属性;扩展属性，多个扩展属性用,隔开拼接存储", name = "extAttr")
  @FieldRemark(column = "EXT_ATTR", field = "extAttr", name = "扩展属性;扩展属性，多个扩展属性用,隔开拼接存储")
  private String extAttr;

  /** 状态;状态 */
  @ApiModelProperty(value = "状态;状态", name = "status")
  @FieldRemark(column = "STATUS", field = "status", name = "状态;状态")
  private String status;

  /** 创建时间;创建时间起 */
  @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
  private java.util.Date creationDateBegin;

  /** 创建时间;创建时间止 */
  @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
  private java.util.Date creationDateEnd;

  /** 最后修改时间;最后修改时间起 */
  @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
  private java.util.Date lastUpdateDateBegin;

  /** 最后修改时间;最后修改时间止 */
  @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
  private java.util.Date lastUpdateDateEnd;

  /** 密级;密级 */
  @LogField private String secretLevelName;

  private String dataPermName; // 数据权属名称
  private String createUserName; // 创建人
  private String createdDeptName; // 创建部门

  /** 是否可编辑 */
  @ApiModelProperty(value = "当前用户是否可以编辑", name = "editStatus")
  private Integer editStatus;

  public String getDataPermName() {
    return dataPermName;
  }

  public void setDataPermName(String dataPermName) {
    this.dataPermName = dataPermName;
  }

  public String getCreateUserName() {
    return createUserName;
  }

  public void setCreateUserName(String createUserName) {
    this.createUserName = createUserName;
  }

  public String getCreatedDeptName() {
    return createdDeptName;
  }

  public void setCreatedDeptName(String createdDeptName) {
    this.createdDeptName = createdDeptName;
  }

  public Integer getEditStatus() {
    return editStatus;
  }

  public String getChecker() {
    return checker;
  }

  public void setChecker(String checker) {
    this.checker = checker;
  }

  public void setEditStatus(Integer editStatus) {
    this.editStatus = editStatus;
  }

  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }

  public String getExamineType() {
    return examineType;
  }

  public String getDataOrigin() {
    return dataOrigin;
  }

  public void setDataOrigin(String dataOrigin) {
    this.dataOrigin = dataOrigin;
  }

  public void setExamineType(String examineType) {
    this.examineType = examineType;
  }

  public String getRemark() {
    return remark;
  }

  public void setRemark(String remark) {
    this.remark = remark;
  }

  public String getDataPerm() {
    return dataPerm;
  }

  public void setDataPerm(String dataPerm) {
    this.dataPerm = dataPerm;
  }

  public String getExtAttr() {
    return extAttr;
  }

  public void setExtAttr(String extAttr) {
    this.extAttr = extAttr;
  }

  public String getStatus() {
    return status;
  }

  public void setStatus(String status) {
    this.status = status;
  }

  public java.util.Date getCreationDateBegin() {
    return creationDateBegin;
  }

  public void setCreationDateBegin(java.util.Date creationDateBegin) {
    this.creationDateBegin = creationDateBegin;
  }

  public java.util.Date getCreationDateEnd() {
    return creationDateEnd;
  }

  public void setCreationDateEnd(java.util.Date creationDateEnd) {
    this.creationDateEnd = creationDateEnd;
  }

  public java.util.Date getLastUpdateDateBegin() {
    return lastUpdateDateBegin;
  }

  public void setLastUpdateDateBegin(java.util.Date lastUpdateDateBegin) {
    this.lastUpdateDateBegin = lastUpdateDateBegin;
  }

  public java.util.Date getLastUpdateDateEnd() {
    return lastUpdateDateEnd;
  }

  public void setLastUpdateDateEnd(java.util.Date lastUpdateDateEnd) {
    this.lastUpdateDateEnd = lastUpdateDateEnd;
  }

  public String getSecretLevelName() {
    return secretLevelName;
  }

  public void setSecretLevelName(String secretLevelName) {
    this.secretLevelName = secretLevelName;
  }

  public String getShareReleaseAuditor() {
    return shareReleaseAuditor;
  }

  public void setShareReleaseAuditor(String shareReleaseAuditor) {
    this.shareReleaseAuditor = shareReleaseAuditor;
  }

  public String getShareReleaseAuditorName() {
    return shareReleaseAuditorName;
  }

  public void setShareReleaseAuditorName(String shareReleaseAuditorName) {
    this.shareReleaseAuditorName = shareReleaseAuditorName;
  }

  public String getDemandReleaseAuditor() {
    return demandReleaseAuditor;
  }

  public void setDemandReleaseAuditor(String demandReleaseAuditor) {
    this.demandReleaseAuditor = demandReleaseAuditor;
  }

  public String getDemandReleaseAuditorName() {
    return demandReleaseAuditorName;
  }

  public void setDemandReleaseAuditorName(String demandReleaseAuditorName) {
    this.demandReleaseAuditorName = demandReleaseAuditorName;
  }

  public String getDemandResponseOperator() {
    return demandResponseOperator;
  }

  public void setDemandResponseOperator(String demandResponseOperator) {
    this.demandResponseOperator = demandResponseOperator;
  }

  public String getDemandResponseOperatorName() {
    return demandResponseOperatorName;
  }

  public void setDemandResponseOperatorName(String demandResponseOperatorName) {
    this.demandResponseOperatorName = demandResponseOperatorName;
  }

  public String getDemandResponseAuditor() {
    return demandResponseAuditor;
  }

  public void setDemandResponseAuditor(String demandResponseAuditor) {
    this.demandResponseAuditor = demandResponseAuditor;
  }

  public String getDemandResponseAuditorName() {
    return demandResponseAuditorName;
  }

  public void setDemandResponseAuditorName(String demandResponseAuditorName) {
    this.demandResponseAuditorName = demandResponseAuditorName;
  }

  public String getAccessApplyAuditor() {
    return accessApplyAuditor;
  }

  public void setAccessApplyAuditor(String accessApplyAuditor) {
    this.accessApplyAuditor = accessApplyAuditor;
  }

  public String getAccessApplyAuditorName() {
    return accessApplyAuditorName;
  }

  public void setAccessApplyAuditorName(String accessApplyAuditorName) {
    this.accessApplyAuditorName = accessApplyAuditorName;
  }

  public String getSubscribeApplyAuditor() {
    return subscribeApplyAuditor;
  }

  public void setSubscribeApplyAuditor(String subscribeApplyAuditor) {
    this.subscribeApplyAuditor = subscribeApplyAuditor;
  }

  public String getSubscribeApplyAuditorName() {
    return subscribeApplyAuditorName;
  }

  public void setSubscribeApplyAuditorName(String subscribeApplyAuditorName) {
    this.subscribeApplyAuditorName = subscribeApplyAuditorName;
  }

  @Override
  public String getLogFormName() {
    if (StringUtils.isEmpty(super.logFormName)) {
      return "数据共享_审核人设置";
    } else {
      return super.logFormName;
    }
  }

  @Override
  public String getLogTitle() {
    if (StringUtils.isEmpty(super.logTitle)) {
      return "数据共享_审核人设置";
    } else {
      return super.logTitle;
    }
  }

  @Override
  public PlatformConstant.LogType getLogType() {
    if (super.logType == null) {
      return PlatformConstant.LogType.module_operate;
    } else {
      return super.logType;
    }
  }
}
